在 C# 中,檔案處理需引入`using System.IO`
string filePath = "C:\\example.txt";
try
{
// 使用 StreamReader 來讀取文本檔案
using (StreamReader sr = new StreamReader(filePath))
{
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
Console.WriteLine("讀取檔案時出錯:" + e.Message);
}
StreamWriter(string path, bool append)
用法:
指定要寫入的檔案路徑以及是否應該附加到現有檔案而不是覆蓋它。
true
,表示附加到現有的檔案。false
,表示覆蓋現有的檔案。程式範例(附加寫入):
string filePath = "C:\\example.txt";
try
{
// 使用 StreamWriter 來寫入文本檔案
using (StreamWriter sw = new StreamWriter(filePath, true))
{
sw.WriteLine("這是第一行。");
sw.WriteLine("這是第二行。");
}
}
catch (Exception e)
{
Console.WriteLine("寫入檔案時出錯:" + e.Message);
}
// 使用 StreamWriter 來寫入文本檔案
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.WriteLine("這是第一行。");
sw.WriteLine("這是第二行。");
}
using System;
using System.IO;
string filePath = "C:\\example.txt";
if (File.Exists(filePath))
{
Console.WriteLine("檔案存在。");
}
else
{
Console.WriteLine("檔案不存在。");
}
string directoryPath = "C:\\myTest_directory";
// 創建資料夾(目錄)
Directory.CreateDirectory(directoryPath);
string directoryPath = "C:\\myTest_directory";
// 刪除資料夾(目錄)及其內容
Directory.Delete(directoryPath, true);
// myTest_directory 資料夾被刪除
題目:
一個包含使用者姓名、電話、地址和電子郵件的 TXT 檔案(example.txt),我們需要將所有使用者的電子郵件地址寫入新的 TXT 檔案(emails.txt)內,並請使用正規表達式協助處理,最後在結束時請告知「已成功提取並寫入電子郵件地址到 emails.txt 檔案。」
範例 TXT 檔案(example.txt)
Allen
0963-123-456
123 Main St, City
Allen@yahoo.com
Bob
0972-123-456
456 Elm St, Town
Bob@gmail.com
Eric
0988-123-456
789 Oak St, Village
Eric@msn.com
程式實作:
string inputFilePath = "C:\\example.txt"; // 輸入檔案
string outputFilePath = "D:\\emails.txt"; // 輸出檔案
try
{
// 建立一個正規表達式來匹配電子郵件地址
string emailPattern = @"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}";
// 建立一個List來儲存匹配的電子郵件地址
List<string> matchedEmails = new List<string>();
// 使用 StreamReader 來讀取範例檔案
using (StreamReader sr = new StreamReader(inputFilePath))
{
string line;
while ((line = sr.ReadLine()) != null)
{
// 使用正規表達式匹配電子郵件地址
MatchCollection matches = Regex.Matches(line, emailPattern);
foreach (Match match in matches)
{
matchedEmails.Add(match.Value);
}
}
}
// 將匹配的電子郵件地址寫入新的檔案
using (StreamWriter sw = new StreamWriter(outputFilePath))
{
foreach (string email in matchedEmails)
{
sw.WriteLine(email);
}
}
Console.WriteLine("已成功提取並寫入電子郵件地址到 emails.txt 檔案。");
}
catch (Exception e)
{
Console.WriteLine("處理檔案時出錯:" + e.Message);
}
期望挑戰30天持續更新成功 ~ DAY14